package com.shanzmoo.merchant.server.api.service;

import com.shanzmoo.db.module.member.domain.dto.CMemberConsumeDTO;
import com.shanzmoo.db.module.member.domain.dto.CMemberRechargeDTO;
import com.shanzmoo.db.module.member.domain.dto.CMemberRefundDTO;
import com.shanzmoo.db.module.member.domain.dto.CMemberScoreConsumeDTO;

public interface IMemberInnerService {
    /**
     * 账户消费
     * @param consumeDTO
     * @return 实际扣除金额,如果使用了优惠券或者活动,会小于订单金额
     * @throws Exception
     */
    Long consume(CMemberConsumeDTO consumeDTO) throws Exception;

    /**
     *
     * @param rechargeDTO
     * @return 实际充值金额(如果使用了活动 会有充值满赠,实际充值的金额会大于充值金额)
     */
    Long recharge(CMemberRechargeDTO rechargeDTO) throws Exception;

    /**
     * 用户退款,返还账户余额
     * @param memberRefundDTO
     * @throws Exception
     */
    void refund(CMemberRefundDTO memberRefundDTO) throws  Exception;

    /**
     * 积分消费
     */
    void scoreConsume(CMemberScoreConsumeDTO scoreConsumeDTO) throws Exception;
    /**
     * 积分获取
     */
    void scoreGet();


}
